package com.bstek.dorado.sample.datatypeext.demo3_columns;

import java.util.ArrayList;
import java.util.List;

import com.bstek.dorado.annotation.ClientProperty;
import com.bstek.dorado.annotation.XmlNode;
import com.bstek.dorado.annotation.XmlNodeWrapper;
import com.bstek.dorado.annotation.XmlSubNode;
import com.bstek.dorado.data.type.EntityDataTypeSupport;
import com.bstek.dorado.data.type.property.PropertyDef;

@XmlNode(label="Demo3DataType", fixedProperties = "type=demo3",
	definitionType="com.bstek.dorado.sample.datatypeext.demo3_columns.Demo3DataTypeDefinition"
)
public class Demo3DataType extends EntityDataTypeSupport {
	private String helloText;

	@ClientProperty(ignored=true)
	public String getHelloText() {
		return helloText;
	}
	public void setHelloText(String helloText) {
		this.helloText = helloText;
	}
	
	//Columns
	@XmlSubNode(wrapper = @XmlNodeWrapper(nodeName="Columns"), 
		implTypes={"com.bstek.dorado.sample.datatypeext.demo3_columns.Demo3BasePropertyDef"}
	)
	public List<PropertyDef> getColumns(){
		return new ArrayList<PropertyDef>(this.getPropertyDefs().values());
	}
	public void setColumns(List<PropertyDef> columns) {
		this.getPropertyDefs().clear();
		for (PropertyDef propertyDef: columns) {
			this.addPropertyDef(propertyDef);
		}
	}
}
